Windows Presentation Foundation

DataContext

DataContext dovoluje zpřístupnit data určitému elementu. Přesněji řečeno přidá k elementu související data. Takto zpřístupněná data je možné použít pomocí data bindingu. Připojit data k elementu pomocí DataContext je možné vytvořit i v code-behind. Vlastnost DataContext je možné použít u elementu odvozeného od třídy FrameworkElement.

Připojení dat pomocí DataContext k elementům ListBox a Label
Tema wpf = new Tema("Windows Presentation Foundation");

//přidání kapitol k tématu
wpf.Kapitoly.Add("XAML");
wpf.Kapitoly.Add("Data binding");
            
//přiřazení datového kontextu k elementům ListBox a Label
kapitolyListBox.DataContext = wpf;
temaLabel.DataContext = wpf;
Třída Tema je podobná třídě Skola. Obsahuje kolekci ObservableCollection<string> Kapitoly. Jako prvky této kolekce jsou přidány názvy kapitol.

Po připojení DataContext k elementu není potřeba uvádět u zápisu {Binding} název elementu nebo odkaz na objekt s daty. To platí v rámci elementu a vnořených elementů (potomků elementu).

Data binding u elementu s DataContext
<ListBox x:Name="kapitolyListBox" ItemsSource="{Binding Path=Kapitoly}">
   <ListBox.ItemsPanel>

        <ItemsPanelTemplate>
             <StackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>

    </ListBox.ItemsPanel>
</ListBox>
ItemsPanelTemplate – určuje, jakým způsobem budou vizuálně uspořádány prvky v ListBox
V tomto případě budou prvky umístěny do StackPanel s horizontální orientací.

Kapitoly budou pomocí elementu ListBox zobrazeny jako na Obrázku 6.

Ukázka z aplikace DataContext
Obrázek 6 Ukázka z aplikace DataContext [zdroj: vlastní]
Ukázkové řešení: DataBinding/DataContext